home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-svrloc-protocol-02.txt < prev    next >
Text File  |  1993-10-19  |  48KB  |  1,133 lines

  1. draft-ietf-svrloc-protocol-02.txt                        John Veizades
  2. INTERNET-DRAFT                                      FTP Software, Inc.
  3.                                                           Scott Kaplan
  4.                                                     FTP Software, Inc.
  5.                                                       October 14, 1993
  6.  
  7.  
  8.                            Service Location Protocol
  9.  
  10.  
  11. 1.0 Status of this memo
  12.  
  13.  
  14. This draft document is a product of the IETF Service Location Working 
  15. Group; it will be submitted to the RFC editor as a standards document.
  16. Please respond with comments to the srvloc@ftp.com mailing list.
  17.  
  18. This document is an Internet-Draft.  Internet-Drafts are working 
  19. documents of the Internet Engineering Task Force (IETF), its areas, and
  20. its working groups.  Note that other groups may also distribute working 
  21. documents as Internet-Drafts.
  22.  
  23. Internet-Drafts are draft documents valid for a maximum of six months. 
  24. Internet-Drafts may be updated, replaced, or obsoleted by other 
  25. documents at any time.  It is not appropriate to use Internet-Drafts as 
  26. reference material or to cite them other than as a "working draft" or
  27. "work in progress."
  28.  
  29. To learn the current status of any Internet-Draft, please check the
  30. 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  31. Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com, or
  32. munnari.oz.au.
  33.  
  34. 2.0 Abstract
  35.  
  36. The service location protocol provides a framework for the discovery and
  37. selection of network services.  It relies on multicast support at the
  38. network layer of the protocol stack it is using.  It does not
  39. specifically rely upon the TCP/IP protocol stack but makes use of
  40. concepts that are found in most TCP/IP protocol implementations.
  41.  
  42. Traditionally, users find services using the name of a network host (a
  43. human readable text string) which is an alias for a network address.
  44. The service location protocol eliminates the need for a user to know the
  45. name of a network host supporting a services.  Rather, the user supplies
  46. a set of attributes which describe the services.  The services location
  47. protocol allows the user to bind this description to the network address
  48. of the service.
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Service Location WG
  56. Expires April 15, 1994                                        [Page 1]
  57.  
  58. INTERNET-DRAFT            Service Location Protocol             Oct-93
  59.  
  60. Table of Contents
  61.  
  62.  
  63. 1.0 Status of this memo..............................................1
  64. 2.0 Abstract.........................................................1
  65. 3.0 Notation Conventions.............................................3
  66. 4.0 Terminology......................................................3
  67. 5.0 Protocol Overview................................................3
  68.     5.1 Service Location PDU header..................................4
  69.         5.1.1 Version................................................4
  70.         5.1.2 Functions..............................................4
  71.         5.1.3 Length.................................................5
  72.         5.1.4 Locale.................................................5
  73.         5.1.5 Flags..................................................5
  74.         5.1.6 XID....................................................5
  75.         5.1.7 Error Codes............................................5
  76.         5.1.8 Authentication Information.............................5
  77.     5.2 Distinguished Attribute Query................................6
  78.     5.3 Get Attributes Query.........................................7
  79.     5.4 Service Query................................................8
  80. 6.0 Directory Agents.................................................9
  81.     6.1 Introduction.................................................9
  82.     6.2 Directory Agent Discovery....................................9
  83.     6.3 Service Registration.........................................9
  84.     6.4 Service Unregister..........................................10
  85.     6.5 Directory Agent Clusters....................................10
  86.     6.6 Foreign Directory Agent Discovery...........................11
  87. 7.0 Service Information Versions....................................11
  88.     7.1 Information Versions........................................11
  89.     7.2 User Agents.................................................11
  90.     7.3 Directory Agents............................................12
  91.     7.4 Service Agents..............................................12
  92. 8.0 Server Location Connections.....................................12
  93. 9.0 Function Resolution.............................................13
  94. 10.0 Authentication.................................................13
  95. 11.0 Multicast vs. Broadcast........................................14
  96.      11.1 Non-interneted networks...................................14
  97.      11.2 Interneted site...........................................14
  98. 12.0 Packet formats.................................................15
  99.      12.1 Attributes................................................15
  100.      12.2 Attribute Value List......................................16
  101.      12.3 Service Instance..........................................16
  102.      12.4 Predicate.................................................17
  103. 13.0 Predicate Language.............................................17
  104. 14.0 Interesting Constants..........................................18
  105. 15.0 Acknowledgments................................................19
  106. 16.0 References.....................................................19
  107. 17.0 Author's Address...............................................20
  108. 18.0 Document Expiration............................................20
  109.  
  110.  
  111.  
  112.  
  113. Veizades, Kaplan                                              [Page 2]
  114.  
  115. INTERNET-DRAFT            Service Location Protocol             Oct-93
  116.  
  117. 3.0 Notation Conventions
  118.  
  119. <>    Values set of in this manner are fully described in section
  120.       12.0.
  121.  
  122. |  |
  123. \  \  Packet layouts with this notation indicate a variable length 
  124. |  |  field.
  125.  
  126. 4.0 Terminology
  127.  
  128. User Agent             a process working on the user behalf to
  129.                          acquire service attributes and configuration.
  130.                          The user agent retrieves service attributes
  131.                          and configuration from the service agents.
  132.  
  133. Service Agent            a process working on the behalf of one or more
  134.                          services to advertise service attributes and
  135.                          configuration.
  136.  
  137. Service Instance     a collection of attributes and configuration
  138.                          information associated with a single service.
  139.                          The service agents advertise service
  140.                          information for a collection of service 
  141.                          instances.
  142.  
  143. Service                  a process or system providing a facility to
  144.                          the network.  The goal of service location is 
  145.                          to provide sufficient information to the
  146.                          user, via the user agent, to find the
  147.                          service.  The service itself is out of band
  148.                          of the service location protocol.
  149.  
  150. Directory Agent          a process which collects information from
  151.                          service agents to provide a single
  152.                          repository of service attributes and
  153.                          configuration.
  154.  
  155. Distinguished Attribute     an attribute at the top level of the service
  156.                          location naming taxonomy.  This attribute is
  157.                          registered with IANA.
  158.  
  159. Attribute                a {class, value} pair describing a
  160.                          characteristic of a service
  161.  
  162. Predicate                a boolean expression of attribute
  163.  
  164. 5.0 Protocol Overview
  165.  
  166. The following describes the operations a service location end system
  167. needs to find services on the attached network.  The end systems does
  168. not need any configuration to begin network interaction.  The end
  169.  
  170. Veizades, Kaplan                                              [Page 3]
  171.  
  172. INTERNET-DRAFT            Service Location Protocol             Oct-93
  173.  
  174. system builds on the information it retrieves in earlier network
  175. requests to find the agents advertising service information, then finds
  176. the terms used to describe services that it is interested in.  The end
  177. system can use this information to send out predicates which describe
  178. the service that match the user's needs.
  179.  
  180. The service location protocol is UDP multicast/broadcast based.  Since
  181. the requester does not know the number of responses to a request and the
  182. request may generate more responses than the requester is able to
  183. handle, the requester sends a series of requests.  Each request contains
  184. the information learned in the previous requests.  The protocol requires
  185. responders to scan this list and respond only if they have information
  186. not in the list.
  187.  
  188. Responses are multicasted at a pseudo-random interval giving other
  189. responders the opportunity to see responses and save network traffic by
  190. not responding with redundant information.
  191.  
  192. Character strings are represented as a {type, length, value} tuple.
  193. Implementers of this specification are strongly encouraged to be able to
  194. send and receive Unicode [17] as one of the string data types.
  195.  
  196. 5.1 Service Location PDU header
  197.  
  198. 0                   1                   2                   3
  199.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  200. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  201. |  version = 1  |    function   |            length             |
  202. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  203. |    locale     |     flags     |             XID               |
  204. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  205. |          Error Code           |  Auth length  |   Auth Type   |
  206. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  207. |                                                               |
  208. \                 <Authentication Information>                  \
  209. |                                                               |
  210. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  211.  
  212. 5.1.1 Version
  213.  
  214. This protocol document defines version 1 of the service location
  215. protocol.
  216.  
  217. 5.1.2 Functions
  218.  
  219. Service location datagrams can be identified as to their operation by
  220. the function field.  The following are the defined operations:
  221.     
  222. Distinguished Attribute Request         DistAttrRqst    1
  223. Distinguished Attribute Reply           DistAttrRply    2
  224. Attribute Class Request                 AttrRqst        3
  225. Attribute Class Reply                   AttrRply        4
  226.  
  227. Veizades, Kaplan                                              [Page 4]
  228.  
  229. INTERNET-DRAFT            Service Location Protocol             Oct-93
  230.  
  231. Service Request                         SrvRqst         5
  232. Service Reply                           SrvRply         6
  233. Service Unregister                      SrvUnreg        7
  234. Service Acknowledge                     SrvAck          8
  235. Version Request                         VerRqst         9
  236. Version Reply                           VerRply         10
  237. Function Resolve Request                FuncReslvRqst   11
  238. Function Resolve Reply                  FuncReslvRply   12
  239.  
  240. 5.1.3 Length
  241.  
  242. The length is the number of bytes after the header field.
  243.  
  244. 5.1.4 Locale
  245.  
  246. All service location requests and responses contain the "locale" field.
  247. This allows clients to advertise their preference as to the language in
  248. which responses should be returned.  The locale is defined as the ISO
  249. ****need reference here****  Services should have a default locale and
  250. if they are able to respond in a language that meets the clients needs
  251. they should respond with data in the client's locale otherwise they
  252. should respond with data in their default locale.
  253.  
  254. 5.1.5 Flags
  255.  
  256. The flags field is a bit field.  The only defined value for this bit
  257. field is the overflow bit (bit 0).  See section 8.0 for a complete
  258. description for the use of this field.
  259.  
  260. 5.1.6 XID
  261.  
  262. The XID (transaction ID) field allows the requester to match responses
  263. to individual requests.  Retransmission of the same service location
  264. datagram should not contain an updated XID.  The requester creates the
  265. XID an initial random seed and changes it for each request it makes.
  266. The responder copies the XID from the request into its response.
  267.  
  268. 5.1.7 Error Code
  269.  
  270. Errors are only valid in response datagrams.  Responses that completed
  271. successfully should have a null value for the error code.
  272.  
  273. 5.1.8 Authentication Information
  274.  
  275. The service location protocol makes provisions for the inclusion of
  276. authentication information.  The service agent may use the
  277. authentication information to allow or deny access to the service
  278. information.  This is not a security architecture for services.  The
  279. service agent only provides security for service information.  Users who
  280. rely on this level of security to secure service access are depending on
  281. security through obfuscation (i.e. if I don't tell you where it is, you
  282. can't find it).  Authorization and access control should also be added
  283. to the service access point.
  284.  
  285. Veizades, Kaplan                                              [Page 5]
  286.  
  287. INTERNET-DRAFT            Service Location Protocol             Oct-93
  288.  
  289. to the service access point.  User agent should use this level of
  290. security to verify that the send of the information that they are
  291. relying on is an authorized provider of this information.
  292.  
  293. Service location allows for the support of several styles of
  294. authentication.  Authentication is encoded in the PDU with type and
  295. length values.  The values for the authentication types are yet to be
  296. determined.
  297.  
  298. 5.3 Distinguished Attribute Query
  299.  
  300. The client uses the Distinguished Attribute Request to find all the
  301. types of services that are available on a network. Service agents
  302. respond with a list of Distinguished Attributes that they support.
  303. Like most service location PDUs, a client can issue more than one
  304. request to insure that all replies have been received.  In each
  305. subsequent request, a user agent adds the list of distinguished
  306. attributes that it is aware of in the "distinguished attributes found"
  307. field of the datagram.  Service agents look for distinguished attributes
  308. that they support but are not in the list.  If any such distinguished
  309. attributes exist, the service agent replies with these distinguished
  310. attributes.  The number of distinguished attributes the service agents
  311. returns is in the datagram as "distinguished attributes found".
  312.  
  313. The service agent should wait before responding.  The wait time should be
  314. a random interval between 0 and 10 seconds divided by the number of
  315. distinguished attributes in the response.
  316.  
  317. User agent requests that are generated by a genesis event, i.e.,
  318. rebooting of a system, loading of the network kernel, etc. should be sent
  319. after a random interval between 0 and 10 seconds.
  320.  
  321. A distinguished attribute defines a class of objects of a particular
  322. type, i.e., printers, modems, file servers, etc.  These attributes are
  323. registered through the Internet Numbering Authority (IANA).
  324.  
  325. 0                   1                   2                   3
  326.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  327. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  328. |       Service location header (function = DistAttrRqst)       |
  329. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  330. |Distinguished Attributes found |   <Distinguished Attribute>   |
  331. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  332. |                                                               |
  333. \                <Distinguished Attribute> (cont.)              \
  334. |                                                               |
  335. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  336.  
  337.                    Distinguished Attributes Request
  338.  
  339.  
  340.  
  341. Veizades, Kaplan                                              [Page 6]
  342.  
  343. INTERNET-DRAFT            Service Location Protocol             Oct-93
  344.  
  345. 0                   1                   2                   3
  346.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  347. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  348. |        Service location header (function = DistAttrRply)      |
  349. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  350. | number of Dist Attrs returned |   <Distinguished Attribute>   |
  351. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  352. |                                                               |
  353. \                <Distinguished Attribute> (cont.)              \
  354. |                                                               |
  355. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  356.  
  357.                   Distinguished Attributes Reply
  358.  
  359. 5.4 Get Attributes Query
  360.  
  361. Once a user agent selects a distinguished attribute, it sends a "get
  362. attributes request" to find all the attributes associated with that
  363. distinguished attribute.  Since different instances of a particular
  364. distinguished attribute can support different attributes, to find all the
  365. attributes associated with a distinguished attribute, the user agent must
  366. form a union of all attributes returned by all service agents.
  367.  
  368. The user agent may drop some of the replies.  It can get the attributes
  369. from these service agents by re-issuing the request.  The user agent
  370. places the addresses of the service agents that it already has replies
  371. from in the "service addresses" field of the request.  Service agents
  372. should only reply if they are not on the "service addresses" list of the
  373. request.  With a packet length of 1500 bytes, this protocol can support
  374. ~200 IPv4 respondents.  Networks with greater than 200 service agents
  375. need to install a directory agent (see Section 6.0).
  376.  
  377. 0                   1                   2                   3
  378.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  379. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  380. |         Service location header (function = AttrRqst)         |
  381. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  382. |    number of services found   |          <Dist Attr>          |
  383. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  384. |                                                               |
  385. \                      <Dist. Attr> (cont.)                     \
  386. |                                                               |
  387. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  388. |                                                               |
  389. \                      <Service Addresses>                      \
  390. |                                                               |
  391. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  392.  
  393.                           Attributes Request
  394.  
  395.  
  396. Veizades, Kaplan                                              [Page 7]
  397.  
  398. INTERNET-DRAFT            Service Location Protocol             Oct-93
  399.  
  400. 0                   1                   2                   3
  401.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  402. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  403. |          Service location header (function = AttrRply)        |
  404. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  405. |    number of Attrs returned   |     <Attribute Value List>    |
  406. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  407. |                                                               |
  408. \                  <Attribute Value List> (cont.)               \
  409. |                                                               |
  410. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  411.  
  412.                           Attributes Reply
  413.  
  414. 5.5 Service Query
  415.  
  416. Having retrieved the attribute grammar which the service agents use to
  417. describe services, the user agent can build a query predicate that
  418. describes the service needs of the user.  The query is multicast to all
  419. service agents or unicast to service agents that support the indicated
  420. distinguished attribute.  Service agents that can satisfy the predicate,
  421. reply with the attributes that they used to satisfy the predicate.
  422.  
  423. 0                   1                   2                   3
  424.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  425. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  426. |           Service location header (function = SrvRqst)        |
  427. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  428. |                                                               |
  429. \                          <Predicate>                          \
  430. |                                                               |
  431. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  432.  
  433.                          Service Request
  434.  
  435. 0                   1                   2                   3
  436.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  437. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  438. |          Service location header (function = SrvRply)         |
  439. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  440. |                       Information Version                     |
  441. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  442. |                                                               |
  443. \                       <Service Instance>                      \
  444. |                                                               |
  445. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  446. |                                                               |
  447. \                    <Attribute Information>                    \
  448. |                                                               |
  449. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  450.  
  451.                           Service Reply
  452. Veizades, Kaplan                                              [Page 8]
  453.  
  454. INTERNET-DRAFT            Service Location Protocol             Oct-93
  455.  
  456. 6.0 Directory Agents
  457.  
  458. 6.1 Introduction
  459.  
  460. A directory agent acts as an proxy for many service agents.  It acquires
  461. information from service agents and acts as a single point of contact to
  462. supply that information.  Service agents register information with the
  463. directory agent so it can reply to service location requests the way
  464. that the service agent would.  The directory agent should be able to
  465. respond in a timely fashion to user agent request and contain accurate
  466. information about the services that are being advertised by the service
  467. agent.
  468.  
  469. The queries that a user agent uses with the service agents (i.e. an
  470. environment without a directory agent) are the same queries that the
  471. user agent unicasted to the directory agent.  A user agent may cache
  472. information about the presence of other directory agents to use as fall
  473. back directory agents in case a selected directory agent fails.
  474.  
  475. 6.2 Directory Agent Discovery
  476.  
  477. When a directory agent first comes on line it sends an unsolicited
  478. distinguished attribute reply to the multicast address.  Service agents
  479. upon receiving this reply must wait for a random interval and then begin
  480. registration of each of the services that the service agent advertises.
  481. When a service agent or user agent first comes on-line it issues a
  482. service request for the distinguished attribute "DIR AGENT"; directory
  483. agents reply to this query.  A service agent should look at the
  484. authorization information returned and determine if the directory agent
  485. is an authorized agent.  The service registers information with all
  486. directory agents when either of the above two events take place.
  487.  
  488. A directory agent may cache information registered with it over boot
  489. cycles. If it does it must verify this information using the service
  490. instance information version see section 7.0.
  491.  
  492. 6.3 Service Registration
  493.  
  494. After a service agent has found a directory agent, it begins to register
  495. its advertised services one at a time.  A service agent must wait for
  496. some random time between each registration.  Registration is done using
  497. the service reply packet specifying all attributes for a service.  A
  498. directory agent must acknowledge each service registration request.
  499.  
  500. Service registration may use a connectionless protocol (e.g. UDP).  But
  501. the registration operation may contain more information than can be sent
  502. in one datagram.  The service registration operation can be sent in more
  503. than one register operation, the service agent registers attributes that
  504. fit in one datagram and then continues to register additional attributes
  505. in additional registration operations.  When a service agent registers
  506. the same attribute class more than once for a service instance, the
  507.  
  508. Veizades, Kaplan                                              [Page 9]
  509.  
  510. INTERNET-DRAFT            Service Location Protocol             Oct-93
  511.  
  512. directory agent overwrites the all the values associated with that
  513. attribute class.  The directory agent may return a server error in the
  514. acknowledgment.
  515.  
  516. 0                   1                   2                   3
  517.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  518. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  519. |            Service location header (function = SrvAck)        |
  520. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  521. |                    Error Code (0 = no error)                  |
  522. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  523.  
  524.                        Service Acknowledgment
  525.  
  526. 6.4 Service Unregister
  527.  
  528. When a service is no longer available for use, the service must
  529. unregister itself from directory agents that it has been registered
  530. with.  A service uses the following PDU to unregister itself.
  531.  
  532. 0                   1                   2                   3
  533.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  534. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  535. |           Service location header (function = SrvUnreg)       |
  536. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  537. |                                                               |
  538. \                       <Service Instance>                      \
  539. |                                                               |
  540. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  541.  
  542.                         Service Unregister
  543.  
  544. The service agent should retry this operation if there is no response
  545. from the directory agent.  The directory agent acknowledges this
  546. operation with a service acknowledgment.
  547.  
  548. 6.5 Directory Agent Clusters
  549.  
  550. Directory agents may form clusters.  A cluster of directory agents
  551. defines a union of the database of each directory agent in the cluster.
  552. Each directory agent answers requests based on the information in the
  553. united database.  Therefore, each directory agent will give the same
  554. reply to a given response.  This is useful when the horizon which a user
  555. or service agent can see is smaller than the services which it normally
  556. wants to access.
  557.  
  558. There is currently no protocol support for clusters.  An administrator
  559. has to configure each directory agent with the network address of the
  560. other directory agents in the cluster.  There is also no support for
  561. creating the union of the database other than the existing service
  562. location PDUs.  
  563.  
  564.  
  565. Veizades, Kaplan                                             [Page 10]
  566.  
  567. INTERNET-DRAFT            Service Location Protocol             Oct-93
  568.  
  569. 6.6 Foreign Directory Agent Discovery
  570.  
  571. Finding foreign directory agent allows a user agent to discover services
  572. in a remote domain.  How the user agent finds the remote directory agent
  573. is not specified in this protocol.  This is in the purview of wide-area
  574. naming or directory services.  The user agent will need the name of the
  575. foreign directory agent in the naming/directory service's namespace.
  576.  
  577. 7.0 Service Information Versions
  578.  
  579. Service location information can live in three locations: at the service
  580. agent, the directory agent and/or the user agent.  A service agent has
  581. the authoritative version of the service information. The directory
  582. agents and the user agents have copies of the service agent's
  583. information.  The "information version" provides an indication to the
  584. user and directory agents that the copies that they hold are out of sync
  585. with the authoritative database in the service agent.
  586.  
  587. 7.1 Information Versions
  588.  
  589. For every service instance advertisement, the service agent attaches an
  590. information version to the advertisement.  This version number is a way
  591. for the service agent to tag the current state of the information that
  592. it is advertising.  When this information changes, the service agent
  593. increments the version.  Agents that are caching this information can
  594. ask the service agent for the version of the current database.
  595.  
  596. 7.2 User Agents
  597.  
  598. When a user agent caches information that it has received from a service
  599. agent or directory agent it should get the version number from source
  600. before it uses the cached information.  
  601.  
  602. 0                   1                   2                   3
  603.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  604. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  605. |         Service location header (function = VerRqst)          |
  606. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  607. |                                                               |
  608. \                       <Service Instance>                      \
  609. |                                                               |
  610. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  611.  
  612.                           Version Request
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620. Veizades, Kaplan                                             [Page 11]
  621.  
  622. INTERNET-DRAFT            Service Location Protocol             Oct-93
  623.  
  624. 0                   1                   2                   3
  625.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  626. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  627. |         Service location header (function = VerRply)          |
  628. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  629. |                     Information Version                       |
  630. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  631.  
  632.                           Version Reply
  633.  
  634. The information may be invalid for several reasons.  The service agent
  635. may not exist, the service instance may no longer exist or the user may
  636. not be authorized to use the service.  Error values are returned for all
  637. the above reasons.  When an error is received  a user agent must
  638. invalidate the cached information.  A user agent may try to revalidate
  639. the information using the original query predicate.  When an error is
  640. received  a user agent must invalidate the cached information.  A user
  641. agent may try to revalidate the information unicasting the original
  642. predicate to the service agent or may try to reacquire a service
  643. provider multicasting the original predicate.
  644.  
  645. 7.3 Directory Agents
  646.  
  647. Directory agents must return correct information since they are acting
  648. on behalf of service agents.  Service agents must update directory
  649. agents when their databases change.  However, directory agents cannot
  650. rely on service agents to always keep them updated.  Directory agents
  651. must verify the validity of the information that they advertise by
  652. requesting the service version from the service agent.  Information that
  653. cannot be validated should not be advertised.  A directory agent can get
  654. the information version synchronously or asynchronously.
  655.  
  656. 7.4 Service Agents
  657.  
  658. Service agents advertise information that they authoritatively own.
  659. When a service agent advertises information, it also indicates the
  660. information version.  When the service agent registers with a directory
  661. agent, the service is responsible for updating the directory agent when
  662. the information changes at the service agent.
  663.  
  664. 8.0 Server Location Connections
  665.  
  666. When a service location request results in a reply from a service or
  667. directory agent that will overflow a datagram, the user agent can open a
  668. connection to the agent and reissue the request over the connection.
  669. The response will be received over the same connection.  A directory or
  670. service agent indicates an overflow via the overflow flag in the service
  671. location packet header.  The operations that can overflow are the
  672. attribute reply and the service reply.  This operation requires the
  673. implementation of a reliable byte stream protocol, like TCP, by the
  674. user, service, and directory agents.  The service agent is not required
  675. to implement a reliable byte stream protocol, but if it doesn't, it
  676.  
  677. Veizades, Kaplan                                             [Page 12]
  678.  
  679. INTERNET-DRAFT            Service Location Protocol             Oct-93
  680.  
  681. can't set the overflow bit (i.e. its answer must fit in a datagram).
  682.  
  683. 9.0 Function Resolution
  684.  
  685. The attribute value of an attribute can be a function.  A function is a
  686. handle for a rapidly changing attribute value that must be resolved at
  687. the service agent (e.g. a piece of code that the service agent runs to
  688. determine an attribute like whether a service is on-line).  The function
  689. data that is passed to the service agent is an opaque value that allows
  690. the service agent to identify the method to determine the attribute
  691. values.
  692.  
  693. 0                   1                   2                   3
  694.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  695. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  696. |       Service location header (function = FuncReslvRqst)      |
  697. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  698. |                          Function                             |
  699. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  700. |                                                               |
  701. \                  <Distinguished Attribute>                    \
  702. |                                                               |
  703. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  704.  
  705.                      Function Resolve Request
  706.  
  707. 0                   1                   2                   3
  708.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  709. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  710. |       Service location header (function = FuncReslvRply)      |
  711. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  712. |          Error Code           |     Length    |S|  Attr Type  |
  713. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  714. |                                                               |
  715. \                     <Attribute Value>                         \
  716. |                                                               |
  717. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  718.  
  719.                      Function Resolve Reply
  720.  
  721. 10.0 Authentication
  722.  
  723. The following discussion of authentication and security is based on
  724. premise that a security and authentication policy has been implemented
  725. for the site.  The service location protocol can function independent of
  726. any site specific authentication policy.
  727.  
  728. The security and authentication policies need to address three areas;
  729. data integrity, data origin authentication and data confidentiality.
  730. That is to say that the data that is advertised has not been subject to
  731. tampering, that the origin of the advertised information can be 
  732.  
  733.  
  734. Veizades, Kaplan                                             [Page 13]
  735.  
  736. INTERNET-DRAFT            Service Location Protocol             Oct-93
  737.  
  738. corroborated and that the data advertised can be protected from
  739. unauthorized viewing.  Service location does not make any provisions for
  740. protection from unauthorized viewing of data and it is left to the
  741. network layer of the protocol to support this functionality.
  742.  
  743. A service can place restrictions on information that is given out to
  744. user agents and this level of security should be maintained when this
  745. information is registered with a directory agent.  A service agent also
  746. needs some level of assurance that the directory agent is a trusted
  747. entity.
  748.  
  749. Any security mechanism that is used with service location should allow
  750. the service agent to verify that the directory agent is authorized to
  751. act upon its behalf.  This security mechanism should also allow for the
  752. directory agent to verify that the service agent is a valid source for
  753. the information that it is providing.
  754.  
  755. From the user agent's perspective it must be able to verify that the
  756. directory agent is an authoritative source of information and in turn
  757. the directory agent must confirm that the user agent is a valid member
  758. of the community.
  759.  
  760. All these functions can be implemented using the authentication
  761. architecture with in service location using one of the many
  762. authentication schemes already in place, i.e., Kerberos, MD5, etc.
  763.  
  764. 11.0 Multicast vs. Broadcast
  765.  
  766. The service location protocol was designed for use in networks where
  767. multicast at the network layer is supported; in some instances multicast
  768. may not be supported.  To support this protocol in networks where
  769. multicast is not supported the following modifications are made to
  770. support the protocol in an environment where network layer broadcast is
  771. supported.
  772.  
  773. 11.1 Non-interneted networks
  774.  
  775. If a network is not connected to any other networks simple network layer
  776. broadcasts will work in place of multicast.
  777.  
  778. 11.2 Interneted site
  779.  
  780. The directory agent provides a central clearing house of information for
  781. end systems.  If the network is designed so that a directory agent
  782. address is configured with each end system, the directory agent will act
  783. as a bridge for information that resides on different subnets.  The
  784. directory agent address can be configured with end systems using a
  785. protocol like the IP Dynamic Host Configuration Protocol.
  786.  
  787.  
  788.  
  789.  
  790.  
  791. Veizades, Kaplan                                             [Page 14]
  792.  
  793. INTERNET-DRAFT            Service Location Protocol             Oct-93
  794.  
  795. 12.0 Packet Formats
  796.  
  797. 12.1 Attributes
  798.  
  799. 0                   1                   2                   3
  800.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  801. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  802. |     length    |S|  Std. Auth. |  Attr. Type   | <Attr Class>  |
  803. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  804. |                                                               |
  805. \                      <Attribute Class>                        \
  806. |                                                               |
  807. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  808. |                                                               |
  809. \                      <Attribute Value>                        \
  810. |                                                               |
  811. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  812.  
  813.  
  814. Length                       The number of bytes in the attribute,
  815.                              including the length field
  816.  
  817. S bit                        set if the attribute is a standard 
  818.                              attribute
  819.  
  820. Standardization Authority    A number assigned to an organization
  821.                              which defines semantics for attributes.
  822.                              (Registered with IANA)
  823.  
  824. Attribute Type               1=Distinguished attribute
  825.                              2=String
  826.                              3=Integer
  827.                              4=Function
  828.                              5=Boolean
  829. Attribute Class              <string>
  830.  
  831. Attribute Value              <string> (Attr. Type = 1|2)
  832.                              <integer> (Attr. Type = 3|4|5)
  833.  
  834. Attributes are {class, value} pairs that define a characteristic of a
  835. service.  There are three classes of attributes: distinguished
  836. attributes, standard attributes and regular attributes.  
  837.  
  838. The distinguished attribute is an attribute with the "attr type" set to
  839. one.  In addition, the attribute class is a zero length string.
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848. Veizades, Kaplan                                             [Page 15]
  849.  
  850. INTERNET-DRAFT            Service Location Protocol             Oct-93
  851.  
  852. 12.2 Attribute Value List
  853.  
  854. 0                   1                   2                   3
  855.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  856. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  857. |     length    |S|  Std. Auth. |  Attr. Type   |  num values   |
  858. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  859. |                                                               |
  860. \                      <Attribute Class>                        \
  861. |                                                               |
  862. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  863. |                                                               |
  864. \                      <Attribute Value>                        \
  865. |                                                               |
  866. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  867.  
  868. 12.3 Service Instance
  869.  
  870. 0                   1                   2                   3
  871.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  872. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  873. | Address Type  | Address length|Srv Info Length|   <Address>   |
  874. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  875. |                                                               |
  876. \                      <Address> (cont.)                        \
  877. |                                                               |
  878. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  879. |                                                               |
  880. \                       <Service Info>                          \
  881. |                                                               |
  882. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  883.  
  884.                         Service Instance
  885.  
  886. A service instance is the address of the service in question, the port
  887. of the service access point and any additional service specific
  888. information needed to make the service connection.  A service address is
  889. typed to support a variety of network protocols.  The service specific
  890. information may be service layer protocol specific information that
  891. facilitates the service rendezvous.
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905. Veizades, Kaplan                                             [Page 16]
  906.  
  907. INTERNET-DRAFT            Service Location Protocol             Oct-93
  908.  
  909. 12.4 Predicate
  910.  
  911. 0                   1                   2                   3
  912.  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  913. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  914. |  Pred length  |               <Predicate>                     |
  915. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  916. |                                                               |
  917. \                          <Predicate>                          \
  918. |                                                               |
  919. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  920.  
  921.                             Predicate
  922.  
  923. 13.0 Predicate Language
  924.  
  925. <attr expr>        ::= <attr class> <template value> | 
  926.                        <bool op> <attr expr> <attr expr> |
  927.                        '!' <attr expr>
  928. <bool op>          ::= '&' | '|'
  929.  
  930. <template value>   ::= <cond op> <integer value> |
  931.                        '=' <string template> |
  932.                        '=' <attr function>
  933. <string template>  ::= 'S' <length> ['*'] <characters> ['*']
  934.  
  935. <attribute>        ::= <attr class> <attr value>
  936. <attr value>       ::= <string value> | <integer value> |
  937.                        <attr function>
  938. <attr class>       ::= <string>
  939. <string value>     ::= 'S' <string>
  940. <integer value>    ::= 'I' <integer>
  941. <attr function>    ::= 'F' <integer>
  942.  
  943. <string>           ::= <type> <length> <characters>
  944. <characters>       ::= ?
  945. <length>           ::= <octet>
  946. <integer>          ::= <4 octet>
  947. <octet>            ::= <8 bits>
  948. <bit>              ::= give me a break!
  949.  
  950. <address>          ::= <addr type> <length> <value>
  951. <addr type>        ::= <octet>
  952. <value>            ::= <variable number of octets>
  953.  
  954. o Spaces, tabs, carriage returns, and line feeds are optional between
  955. tokens (i.e. ignored by the recipient) and, since they take up
  956. bandwidth, are discouraged.
  957.  
  958. o All string comparisons are caseless, however, a process should
  959. preserve the case of a string and store exactly what it receives.
  960.  
  961.  
  962. Veizades, Kaplan                                             [Page 17]
  963.  
  964. INTERNET-DRAFT            Service Location Protocol             Oct-93
  965.  
  966. o <wildcard> matches 0 or more characters.
  967.  
  968. 14.0 Interesting Constants
  969.  
  970.   UDP and TCP Port Number
  971.     
  972.     To be assigned by IANA
  973.  
  974.   Multicast Address
  975.  
  976.     To be assigned by IANA
  977.  
  978.   Address Types
  979.  
  980.     Internet v4
  981.     CLNP
  982.     AppleTalk
  983.     DecNet
  984.     ArcNet
  985.  
  986.   String Types
  987.  
  988.     ASCII        1
  989.     ISO646        2
  990.     Unicode        3
  991.  
  992.   Attribute Value Types
  993.  
  994.     Distinguished Attribute     1
  995.     String                      2
  996.     Integer                     3
  997.     Function                    4
  998.     Boolean                     5
  999.   
  1000.   Error Codes
  1001.  
  1002.     TO BE DETERMINED
  1003.  
  1004.   Authentication Types
  1005.  
  1006.     None        0
  1007.     MD2         1
  1008.     MD4         2
  1009.     MD5         3
  1010.     Kerberos    4
  1011.     RSA         5
  1012.     Plain Text  6
  1013.     Unix        7
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019. Veizades, Kaplan                                             [Page 18]
  1020.  
  1021. INTERNET-DRAFT            Service Location Protocol             Oct-93
  1022.  
  1023. 15.0 Acknowledgments
  1024.  
  1025. This protocol owes some of the original ideas to other service location
  1026. protocols found in many other networking protocols. Leo McLaughlin (FTP)
  1027. and Mike Ritter (Apple) provided much input into early version of this
  1028. document.  Thanks also to Steve Deering (Xerox) for providing his
  1029. insight into distributed multicast protocols.
  1030.  
  1031. 16.0 References
  1032.  
  1033. [1]  Freier, A. O. "Network Binding Protocol" Xerox Corporation
  1034. Unpublished, June 1986.
  1035.  
  1036. [2]  S. Gursharan, R. Andrews, A. Oppenheimer, Inside AppleTalk.
  1037. Addison-Wesley Publishing.  1990 
  1038.  
  1039. [3]  Deering, S., "Host Extensions for IP Mulitcasting", RFC 1112, NIC,
  1040. August 1989.
  1041.  
  1042. [4]  Galvin, J., McCloghrie, K., "Security Protocols for version 2 of
  1043. the Simple Network Management Protocol", RFC 1446, NIC, April 1993.
  1044.  
  1045. [5]  Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, NIC,
  1046. April 1992.
  1047.  
  1048. [6]  Saltzer, J., "On the Naming and Binding of Network Destinations",
  1049. RFC 1498, M.I.T. Laboratory for Computer Science, August 1993.
  1050.  
  1051. [7]  Accetta, M. "Resource Location Protocol", RFC 887, NIC, December
  1052. 1983.
  1053.  
  1054. [8]  Legato Systems, "The Legato Resource Administration Platform",
  1055. Legato Systems, 1991.
  1056.  
  1057. [9]  C. McManis and R. Rom, "The Zeus Name Service Architecture", Sun
  1058. Microsystems, 1990.
  1059.  
  1060. [10] S. Dyer, "The Hesiod Name Server",  Winter Usenix Conference, pp.
  1061. 183-187, Feb 1988.
  1062.  
  1063. [11] D. Oppen and Y. Dalal, "The Clearinghouse: A Decentralized Agent
  1064. for Locating Named Objects in a Distributed Environment,"  Tech. Rep.
  1065. OPD-78103, Xerox Office Products Division, 1981.
  1066.  
  1067. [12] B. Lampson, "Designing a Global Name Service",  Proceedings of the
  1068. 5th ACM Symposium on Principles of Distributed Computing, pp. 1-10,
  1069. 1986.
  1070.  
  1071. [13] D. Cheriton and T. Mann, "Uniform Access to Distributed Name
  1072. Interpretations in the V-system".
  1073.  
  1074. [14] S. Deering. "Router Discovery Protocol".  RFC 1256, NIC 1991.
  1075.  
  1076. Veizades, Kaplan                                             [Page 19]
  1077.  
  1078. INTERNET-DRAFT            Service Location Protocol             Oct-93
  1079.  
  1080. [15] P. Mockapetris. "Domain Names - Concepts and Facilities".  RFC
  1081. 1034, NIC, November 1987
  1082.  
  1083. [16] P. Mockapetris. "Domain Names - Implementation and Specification".
  1084. RFC 1035, NIC. November 1987
  1085.  
  1086. [17] The Unicode Standard Version 1.0 Volume 1, ISBN 0-201-56788-1
  1087. October 1991.
  1088.  
  1089. 17.0 Author's Addresses
  1090.  
  1091.    John Veizades
  1092.    FTP Software, Inc.
  1093.    785 Market St. 12th Floor
  1094.    San Francisco, CA 94103
  1095.  
  1096.    Phone: 415-978-2236
  1097.    Fax:   415-543-9002
  1098.  
  1099.    Email: veizades@wco.ftp.com
  1100.  
  1101.    Scott Kaplan
  1102.    FTP Software, Inc.
  1103.    785 Market St. 12th Floor
  1104.    San Francisco, CA 94103
  1105.  
  1106.    Phone: 415-978-2204
  1107.    Fax:   415-543-9002
  1108.  
  1109.    Email: scott@wco.ftp.com
  1110.  
  1111.  
  1112. 18.0 Document Expiration
  1113.  
  1114. This document expires April 15, 1994
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133. Veizades, Kaplan                                             [Page 20]